<?php

namespace Common\Model;

use Think\Model;

class GoodsSkuDefModel extends Model {

    protected $_auto = array(/* array(完成字段1,完成规则,[完成条件,附加规则]) */
        array('addTime', 'time', 1, 'function'),
        array('updateTime', 'time', 2, 'function'),
        array('isOn', '1', 1),
    );  // 自动完成定义

    /**
     * 添加单个信息
     * @return type
     */
    public function addGoodsSkuDef($data = '') {
        $rt = false;
        if ($this->create($data)) {
            $rt = $this->add();
        }
        return $rt;
    }

    /**
     * 更新信息(注意$data一定要有主键id,若$data为空，则默认是对$_POST数组处理)
     * @return type
     */
    public function updateGoodsSkuDef($data = '') {
        $rt = false;
        if ($this->create($data)) {
            $rt = $this->save();
        }
        return $rt;
    }

    /**
     * 删除(批量)
     */
    public function deleteGoodsSkuDef($ids) {
        $data = array("isOn" => 0, "updateTime" => time());
        return $this->where("defID in ( $ids )")->save($data);
    }
    
    /**
     * 得到该 ID 对应的所有子节点的 ID
     * @param type $parent
     */
    public function getChildsIDs($parent, &$idsArr) {
        
        $tempArr = $this->where("isOn = 1 and parent = $parent")->field('defID, parent')->select();
        if($tempArr && count($tempArr) > 0) { // 有子节点
            
            foreach ($tempArr as $i => $val) {
                $idsArr[] = $val['defID'];
                // 分别得到其所有子节点
                $this->getChildsIDs($val['defID'], $idsArr);
            }
        } 
    }
    

    /**
     * 判断该 sku 是否还有子节点
     * @param type $catID
     */
    public function isExistSubSku($catID) {
        return $this->where(array("catID" => $catID))->count() > 0;
    }

}
